1、算法工作原理
算法是function template,其他stl部件是类模板
算法在实现功能时,因为不知道容器是什么,所以全部信息都要靠迭代器来提供。
template
Algorithm(Iterator iter1, Iterator iter2, Cmp comp) {}
其中的cmp是一个仿函数
2、iterator的分类,iterator_category
2.1 几种迭代器
![在这里插入图片描述](https://img-blog.csdnimg.cn/5f5f1d5073944b12a4c7bf2ced327993.png)
array: random_access_iterator_tag,随机访问迭代器
vector:同上
deque:同上
list: bidirectional_iterator_tag:双向迭代器
forward_List:forward_iterator_tag:单向迭代器
set\multiset\map\multimap:bidirectional_iterator_tag;
unordered set\...:取决于拉链是双向链表还是单项链表
2.2 测试各容器内部的迭代器类型
#include
#include
#include
using namespace std;
// 函数重载
void _display(random_access_iterator_tag iter) {
cout |